﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using SST_BL;
using System.Data;

namespace TCU
{
    public partial class ManejoCoordinador : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                string user = Request.ServerVariables["REMOTE_USER"].ToString();
                if (MainBL.RevisarPermiso(user.Substring(user.IndexOf("\\") + 1), "Administrador"))
                    this.CargarCoordinadoresDeTI();
                else
                    Server.Transfer("NoAccess.aspx");  
            } 
        }


        private void CargarCoordinadoresDeTI() {
            DataTable dt = MainBL.ListarCoordinadoresDeTI();
            gvCoordinadores.DataSource = dt;
            gvCoordinadores.DataBind();
        }

        protected void gvCoordinadores_RowEditing(object sender, GridViewEditEventArgs e)
        {
            gvCoordinadores.EditIndex = e.NewEditIndex;
            this.CargarCoordinadoresDeTI();
            HiddenField lbID = gvCoordinadores.Rows[e.NewEditIndex].FindControl("hiddenCircuitoID") as HiddenField;

            DropDownList list = (DropDownList)gvCoordinadores.Rows[e.NewEditIndex].FindControl("editDropInformatico");
            DataTable InformaticosPorCircuito = MainBL.ListarInformaticosPorCircuito(int.Parse(lbID.Value));

            if (InformaticosPorCircuito != null)
            {
                for (int i = 0; i < InformaticosPorCircuito.Rows.Count; i++)
                {
                    list.Items.Add(new ListItem(InformaticosPorCircuito.Rows[i].ItemArray[1].ToString(), InformaticosPorCircuito.Rows[i].ItemArray[0].ToString()));
                }//for (int i = 0; i < HabilidadesDelCircuito.Rows.Count; i++) { 
                notificacion.Text = "";
            }
            else {
                notificacion.Text = "El Circuito no tiene informaticos asignados!";
            }         

        }

        protected void gvCoordinadores_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            HiddenField lbID = gvCoordinadores.Rows[e.RowIndex].FindControl("hiddenCircuitoID") as HiddenField;
            DropDownList list = (DropDownList)gvCoordinadores.Rows[e.RowIndex].FindControl("editDropInformatico");

            if (int.Parse(lbID.Value) > 0 && int.Parse(list.SelectedValue.ToString()) > 0)
            {
                notificacion.ForeColor = System.Drawing.Color.Red;
                if (MainBL.CambiarCoordinadorDeCircuito( int.Parse(list.SelectedValue.ToString()) , int.Parse(lbID.Value) ))
                {
                    notificacion.ForeColor = System.Drawing.Color.Green;
                    notificacion.Text = "El Coordinador ha sido modificado con exito!";
                }
                else {
                    notificacion.Text = "El coordinador no pudo ser modificado!";
                }
            }
            else {
                notificacion.Text = "Ocurrio un error y debe de seleccionar los campos requeridos!";
            }

            gvCoordinadores.EditIndex = -1;
            this.CargarCoordinadoresDeTI();
        }

        protected void gvCoordinadores_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
        {
            gvCoordinadores.EditIndex = -1;
            this.CargarCoordinadoresDeTI();
        }//private void CargarCoordinadoresDeTI() { 

    }
}